<?php
class AlertasController extends CustomController
{

    public function historialViaje()
    {
        // Check if user is logged in
        $this->userLoggedIn();
        $this->isAdmin();
        // Get viaje
        $idViaje = $this->getValue('id');
        $idViaje = intval($idViaje);
        if ($idViaje && ($viaje = $this->model->getViajeFinalizado($idViaje)))
        {
            $vars = array(
                'link_ruta'      => $this->link(MODULE_MAPA, MODULE_MAPA_EDITAR_RECORRIDO),
                'link_conductor' => $this->link(MODULE_CONDUCTORES, MODULE_CONDUCTORES_EDITAR_CONDUCTOR),
                'link_vehiculo'  => $this->link(MODULE_VEHICULOS, MODULE_VEHICULOS_EDITAR_VEHICULO),
                'link_grupo'     => $this->link(MODULE_GRUPOS, MODULE_GRUPOS_EDITAR_GRUPO),
                'historial'      => $this->model->getHistorial($idViaje, $viaje['fkruta'], $viaje['salida_real_timestamp'], $viaje['salida_timestamp']),
                'viaje'          => $viaje
            );
            if (!empty($vars['historial']))
            {
                $this->view->historialViaje($vars);
            }
            else
            {
                $this->error('El viaje ingresado es incorrecto');
                $this->redirectTo(MODULE_ALERTAS);
            }
        }
        else
        {
            $this->error('El viaje ingresado es incorrecto');
            $this->redirectTo(MODULE_ALERTAS);
        }
    }

    public function historialVehiculo()
    {
        // Check if user is logged in
        $this->userLoggedIn();
        $this->isAdmin();
        // Id
        $id = $this->getValue('id');
        $data = false;
        // Vars
        $vars = array(
            'vehiculos'                   => $this->model->getVehiculos(),
            'link_historial_por_vehiculo' => $this->link(MODULE_ALERTAS, MODULE_ALERTAS_VEHICULO)
        );
        // Validar
        $errs = array();
        if ((!empty($id)) && ($vehiculo = $this->model->getVehiculo($id)))
        {
            $vars['vehiculo'] = $vehiculo[$id];
            // Validar fechas
            $desde = $this->getValue('fecha_desde');
            $hasta = $this->getValue('fecha_hasta');
            if (empty($desde)) $errs[]='La fecha desde para la salida del viaje no puede estar vac&iacute;a';
            else
            {
                $vars['fecha_desde'] = $desde;
            }
            if (empty($hasta)) $errs[]='La fecha hasta para la salida del viaje no puede estar vac&iacute;a';
            else
            {
                $vars['fecha_hasta'] = $hasta;
            }
            if (empty($errs))
            {
                $desde = strtotime($desde . '00:00:00');
                $hasta = strtotime($hasta . '23:59:59');
                if ($desde >= $hasta)
                {
                    $vars['fecha_desde'] = '';
                    $vars['fecha_hasta'] = '';
                    $errs[]='Las fechas son incorrectas';
                }
            }
            if (!empty($errs))
            {
                $this->error($errs);
            }
            else
            {
                $vars['fecha_desde'] = date('m/d/Y', $desde);
                $vars['fecha_hasta'] = date('m/d/Y', $hasta);
                $pageNumber = $this->getPage();
                if ($viajesPorVehiculo = $this->model->getViajesPorVehiculo($id, $desde, $hasta, $pageNumber))
                {
                    $data = true;
                    $vars['fecha_desde_mostrar']  = date('d/m/Y H:i:s', $desde);
                    $vars['fecha_hasta_mostrar']  = date('d/m/Y H:i:s', $hasta);
                    $vars['pagination_link']      = $this->link(MODULE_ALERTAS, MODULE_ALERTAS_VEHICULO).'?id='.$id.'&fecha_desde='.$vars['fecha_desde'].'&fecha_hasta='.$vars['fecha_hasta'];
                    $vars['link_historial_viaje'] = $this->link(MODULE_ALERTAS, MODULE_ALERTAS_VIAJE).'?id=';
                    $vars['viajes'] = $viajesPorVehiculo;
                }
                else
                {
                    $this->error('El veh&iacute;culo no ha realizado ning&uacute;n viaje en las fechas seleccionadas');
                }
            }
        }
        else if (!empty($id) && empty($vehiculo))
        {
            $errs[] = 'El veh&iacute;culo ingresado no es correcto';
        }
        $this->view->historialPorVehiculo($vars, $data);
    }

    public function historialGrupo()
    {
        // Check if user is logged in
        $this->userLoggedIn();
        $this->isAdmin();
        // Id
        $id = $this->getValue('id');
        $data = false;
        // Vars
        $vars = array(
            'grupos'                   => $this->model->getGrupos(),
            'link_historial_por_grupo' => $this->link(MODULE_ALERTAS, MODULE_ALERTAS_GRUPO)
        );
        // Validar
        $errs = array();
        if ((!empty($id)) && ($grupo = $this->model->getGrupo($id)))
        {
            $vars['grupo'] = $grupo[$id];
            // Validar fechas
            $desde = $this->getValue('fecha_desde');
            $hasta = $this->getValue('fecha_hasta');
            if (empty($desde)) $errs[]='La fecha desde para la salida del viaje no puede estar vac&iacute;a';
            else
            {
                $vars['fecha_desde'] = $desde;
            }
            if (empty($hasta)) $errs[]='La fecha hasta para la salida del viaje no puede estar vac&iacute;a';
            else
            {
                $vars['fecha_hasta'] = $hasta;
            }
            if (empty($errs))
            {
                $desde = strtotime($desde . '00:00:00');
                $hasta = strtotime($hasta . '23:59:59');
                if ($desde >= $hasta)
                {
                    $vars['fecha_desde'] = '';
                    $vars['fecha_hasta'] = '';
                    $errs[]='Las fechas son incorrectas';
                }
            }
            if (!empty($errs))
            {
                $this->error($errs);
            }
            else
            {
                $vars['fecha_desde'] = date('m/d/Y', $desde);
                $vars['fecha_hasta'] = date('m/d/Y', $hasta);
                $pageNumber = $this->getPage();
                if ($viajesPorGrupo = $this->model->getViajesPorGrupo($id, $desde, $hasta, $pageNumber))
                {
                    $data = true;
                    $vars['fecha_desde_mostrar']  = date('d/m/Y H:i:s', $desde);
                    $vars['fecha_hasta_mostrar']  = date('d/m/Y H:i:s', $hasta);
                    $vars['pagination_link']      = $this->link(MODULE_ALERTAS, MODULE_ALERTAS_GRUPO).'?id='.$id.'&fecha_desde='.$vars['fecha_desde'].'&fecha_hasta='.$vars['fecha_hasta'];
                    $vars['link_historial_viaje'] = $this->link(MODULE_ALERTAS, MODULE_ALERTAS_VIAJE).'?id=';
                    $vars['viajes'] = $viajesPorGrupo;
                }
                else
                {
                    $this->error('El grupo no ha realizado ning&uacute;n viaje en las fechas seleccionadas');
                }
            }
        }
        else if (!empty($id) && empty($grupo))
        {
            $errs[] = 'El grupo ingresado no es correcto';
        }
        $this->view->historialPorGrupo($vars, $data);
    }

    public function historialGeneral()
    {
        // Check if user is logged in
        $this->userLoggedIn();
        $this->isAdmin();
        $data = false;
        // Vars
        $vars = array(
            'link_historial_general' => $this->link(MODULE_ALERTAS, MODULE_ALERTAS_GENERALES)
        );
        // Validar
        if ($_POST)
        {
            $errs = array();
            // Validar fechas
            $desde = $this->getValue('fecha_desde');
            $hasta = $this->getValue('fecha_hasta');
            if (empty($desde)) $errs[]='La fecha desde para la salida del viaje no puede estar vac&iacute;a';
            else
            {
                $vars['fecha_desde'] = $desde;
            }
            if (empty($hasta)) $errs[]='La fecha hasta para la salida del viaje no puede estar vac&iacute;a';
            else
            {
                $vars['fecha_hasta'] = $hasta;
            }
            if (empty($errs))
            {
                $desde = strtotime($desde . '00:00:00');
                $hasta = strtotime($hasta . '23:59:59');
                if ($desde >= $hasta)
                {
                    $vars['fecha_desde'] = '';
                    $vars['fecha_hasta'] = '';
                    $errs[]='Las fechas son incorrectas';
                }
            }
            if (!empty($errs))
            {
                $this->error($errs);
            }
            else
            {
                $vars['fecha_desde'] = date('m/d/Y', $desde);
                $vars['fecha_hasta'] = date('m/d/Y', $hasta);
                $pageNumber = $this->getPage();
                if ($viajes = $this->model->getViajesGenerales($desde, $hasta, $pageNumber))
                {
                    $data = true;
                    $vars['fecha_desde_mostrar']  = date('d/m/Y H:i:s', $desde);
                    $vars['fecha_hasta_mostrar']  = date('d/m/Y H:i:s', $hasta);
                    $vars['pagination_link']      = $this->link(MODULE_ALERTAS, MODULE_ALERTAS_GENERALES).'?fecha_desde='.$vars['fecha_desde'].'&fecha_hasta='.$vars['fecha_hasta'];
                    $vars['link_historial_viaje'] = $this->link(MODULE_ALERTAS, MODULE_ALERTAS_VIAJE).'?id=';
                    $vars['viajes'] = $viajes;
                }
                else
                {
                    $this->error('No se pudo encotrar ning&uacute;n viaje en las fechas seleccionadas');
                }
            }
        }
        $this->view->historialGeneral($vars, $data);
    }

}
?>